home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Nordlicht Spiele
/
Nordlicht Spiele 01-02 (19xx)(Nordlicht)(DE)(PD).zip
/
Nordlicht Spiele 01-02 (19xx)(Nordlicht)(DE)(PD).adf
/
blue_title
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1989-07-18
|
5KB
|
89 lines
ON BREAK GOSUB marke:BREAK ON:ON ERROR GOTO marke2:FOR t=1 TO 10:MENU t,0,0,"":NEXT t
DECLARE FUNCTION xopen& LIBRARY:DECLARE FUNCTION xread& LIBRARY
DECLARE FUNCTION move& LIBRARY:DECLARE FUNCTION allocmem& LIBRARY
DECLARE FUNCTION AllocRemember& LIBRARY:DECLARE FUNCTION opendiskfont& LIBRARY
LIBRARY "dos.library":LIBRARY "graphics.library":LIBRARY "intuition.library"
LIBRARY "exec.library":LIBRARY "diskfont.library"
SUB xy (x%,y%) STATIC
e&=move&(WINDOW(8),x%,y%)
END SUB
SUB diskfont(font$,height%) STATIC
SHARED strfont&:prefs%=96:font0$=font$+".font"+CHR$(0)
IF strfont&<>0 THEN CALL closefont(strfont&)
textattr&(0)=SADD(font0$):textattr&(1)=height%*2^16+prefs%:strfont&=opendiskfont&(VARPTR(textattr&(0)))
IF strfont&<>0 THEN CALL setfont (WINDOW(8),strfont&)
END SUB
SUB t(t%) STATIC
a=TIMER
t:IF TIMER<a+t% THEN GOTO t
END SUB
SUB at(t%) STATIC
a=TIMER
at:IF TIMER<a+t% AND MOUSE(0)=0 THEN GOTO at
END SUB
SUB pic(daten$) STATIC
DIM planes&(5):laenge&=(320*200)/8:farben&=2^5:daten$=daten$+CHR$(0):CLS:FOR t=0 TO 31:PALETTE t,0,0,0:NEXT t
rastport=WINDOW(8):bitmap=PEEKL(rastport+4):FOR t=1 TO 5:planes&(t)=PEEKL(bitmap+4+4*t):NEXT t
windowx&=WINDOW(7):screenx&=PEEKL(windowx+46):viewport&=screenx&+44:handle&=xopen&(SADD(daten$),1005)
FOR t=1 TO 5:erg&=xread&(handle&,planes&(t),laenge&):NEXT t:CALL xclose(handle&):ERASE planes&
END SUB
title:DATA 0,0,0,0,0,0,3,3,3,5,5,5,8,8,8,10,10,10,12,12,12,15,15,15,9,13,15
DATA 6,10,14,4,8,12,2,5,11,9,14,14,8,7,8,6,9,14,15,0,0,15,4,0,15,7,0
DATA 15,11,0,15,15,0,15,0,15,15,4,15,15,8,15,15,11,15,15,15,15,0,15,0
DATA 0,13,0,0,10,0,0,8,0,0,0,0,0,0,0,0,0,0
table:DATA 0,0,0,0,0,0,3,3,3,5,5,5,8,8,8,10,10,10,12,12,12,15,15,15,2,11,2
DATA 2,10,2,6,14,6,15,12,5,4,5,15,7,10,15,15,0,0,15,5,0,15,10,0,15,15,0
DATA 15,8,15,15,0,15,9,13,15,5,8,14,3,6,12,2,5,11,10,0,10,15,0,15,15,4,15
DATA 15,8,15,15,11,15,15,15,15,0,0,0,0,0,0
hi:DATA 0,0,0,0,0,0,3,3,3,5,5,5,6,6,6,8,8,8,10,10,10,12,11,11,13,13,13,15,15,15
DATA 0,0,15,0,3,15,0,6,15,0,9,15,0,12,15,0,15,15,15,15,15,10,10,15,5,5,15
DATA 0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
scores:DATA 0,0,0,0,0,0,3,3,3,5,5,5,6,6,6,8,8,8,10,10,10,12,11,11,13,13,13,15,15,15
DATA 0,0,15,0,3,15,0,6,15,0,9,15,0,12,15,0,15,15,4,15,15,8,15,15,11,15,15,15,15,15
DATA 15,13,15,15,11,15,15,9,15,15,6,15,15,4,15,15,2,15,15,2,12,15,1,8,15,1,4,15,0,0,0,0,0,0,0,0
SUB col STATIC
FOR t=0 TO 31:READ r,g,b:PALETTE t,r/15,g/15,b/15:NEXT t
END SUB
wscr&=PEEKL(WINDOW(7)+46):CALL movescreen&(wscr&,0,300)
SCREEN 1,320,200,5,1:WINDOW 1,"",,0,1:scr1&=PEEKL(WINDOW(7)+46):FOR t=0 TO 31:PALETTE t,0,0,0:NEXT t
SCREEN 2,320,200,5,1:WINDOW 2,"",,0,2:scr2&=PEEKL(WINDOW(7)+46):FOR t=0 TO 31:PALETTE t,0,0,0:NEXT t
hardware&=14675968:speed=425:f$=":snd_1"+CHR$(0)
OPEN "I",#1,f$:laenge&=LOF(1):CLOSE #1:adresse&=allocmem&(laenge&,2)
handle&=xopen&(SADD(f$),1005):erg&=xread&(handle&,adresse&,laenge&)
CALL xclose(handle&):WINDOW 1:CALL screentofront&(scr2&)
CALL pic (":title_pic"):RESTORE title:CALL col:WINDOW 2:WHILE MOUSE(0)<>0:WEND:spieler=0
POKEL hardware&+160,adresse&:POKEW hardware&+164,INT(laenge&/2)
POKEW hardware&+166,speed:POKEW hardware&+168,64:POKEW hardware&+150,32769
vorspann:CALL screentofront&(scr1&):hardware&=14675968
CALL pic (":table_pic"):at(12):RESTORE table:CALL col
WINDOW 1:FOR t=0 TO 320:LINE (150,100)-(t,0),0:NEXT t:FOR t=0 TO 220:LINE (150,100)-(320,t),0:NEXT t
FOR t=320 TO 0 STEP -1:LINE (150,100)-(t,220),0:NEXT t
FOR t=220 TO 0 STEP -1:LINE (150,100)-(0,t),0:NEXT t:IF MOUSE(0)<>0 THEN GOTO spielstart
CALL screentofront&(scr2&):CALL pic(":hi_pic"):at(12):RESTORE hi: CALL col:WINDOW 2
FOR t=0 TO 200 STEP 2:LINE (0,10+t)-(320,10+t),0:LINE (0,197-t)-(320,197-t),0:NEXT t
IF MOUSE(0)<>0 THEN GOTO spielstart
CALL screentofront&(scr1&):CALL pic("scores_pic")
CALL setdrmd&(WINDOW(8),0):diskfont "mini",6:OPEN ":scor" FOR INPUT AS 1
FOR t=1 TO 9:COLOR 9+t,0:INPUT#1,n$:INPUT#1,p:LOCATE 7+t,24+3:PRINT t:LOCATE 7+t,26+3
PRINT ".":LOCATE 7+t,28+3:PRINT n$:LOCATE 7+t,44+3:PRINT p:NEXT t
FOR t=10 TO 20:COLOR 9+t,0:INPUT#1,n$:INPUT#1,p:LOCATE 7+t,23+3:PRINT t:LOCATE 7+t,26+3
PRINT ".":LOCATE 7+t,28+3:PRINT n$:LOCATE 7+t,44+3:PRINT p
NEXT t:CALL setdrmd&(WINDOW(8),1):CLOSE 1:RESTORE scores:CALL col:WINDOW 1
FOR t=0 TO 300:CALL movescreen(scr1&,0,1):NEXT t:CLS:FOR t=0 TO 31:PALETTE t,0,0,0:NEXT t
CALL screentofront&(scr2&):CALL movescreen(scr1&,0,-500):IF MOUSE(0)<>0 THEN GOTO spielstart
at(14):CALL pic (":title_pic"):RESTORE title:CALL col:WINDOW 2
u=0:o=0:FOR u=0 TO 20:LINE (0,0)-(u,200),0:NEXT u
again:FOR t=0 TO 40:LINE (o+t,0)-(u,200),0:NEXT t
o=o+t:FOR t=0 TO 40:LINE (o,0)-(u+t,200),0:NEXT t
u=u+t:IF u<320 AND o<320 THEN GOTO again
IF MOUSE(0)<>0 THEN GOTO spielstart
GOTO vorspann
spielstart:
FOR t=64 TO 0 STEP -1:POKEW hardware&+168,t:FOR tt=0 TO 150:NEXT tt:NEXT t
POKEW hardware&+150,1:CALL freemem(adresse&,laenge&)
LIBRARY CLOSE:WINDOW 1:CLS:WINDOW 2:CLS
CHAIN "blue"
marke:RETURN
marke2:RESUME NEXT